package com.hmall.common.client;

import com.hmall.common.dto.Item;
import com.hmall.common.dto.PageDTO;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestParam;

@FeignClient("itemservice")
public interface ItemClient {
    /**
     * 商品分页查询
     * @param page 当前页码
     * @param size 页面大小
     * @return Total总条数，Records结果集
     */
    @GetMapping("/item/list")
    PageDTO<Item> list(@RequestParam("page") Integer page,@RequestParam("size") Integer size);

    /**
     * 根据id查询商品
     * @param id 商品id
     * @return id对应商品信息
     */
    @GetMapping("/item/{id}")
    Item findById(@PathVariable Long id);

    /**
     * 扣减库存
     * @param itemId 商品id
     * @param num 商品数量
     */
    @PutMapping("/item/stock/{itemId}/{num}")
    public void updateStock(@PathVariable("itemId") Long itemId,
                            @PathVariable("num") Integer num);
}
